/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.furb.trabalhoFinal.DAO;

import br.com.furb.trabalhoFinal.Exceptions.DAOException;
import br.com.furb.trabalhoFinal.Utils.FileManager;
import br.com.furb.trabalhoFinal.model.Cargo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Usuario
 */
public class DAOCargo implements DAOGenerico {

    private Map<Integer, Cargo> cargos;

    public Map<Integer, Cargo> getCargos() {
        if (cargos == null) {
            cargos = (Map<Integer, Cargo>) FileManager.getSerializedObject(Cargo.class);
            if (cargos == null) {
                cargos = new HashMap<Integer, Cargo>();
            }
        }
        return cargos;
    }

    public DAOCargo() {
        cargos = getCargos();
    }

    @Override
    public void salvar(Object obj) throws DAOException{
        if (obj instanceof Cargo) {
            getCargos().put(((Cargo) obj).getCodigo(), (Cargo) obj);
            FileManager.serializeObject(getCargos(), Cargo.class);
        } else {
            throw new DAOException("Tentativa de salvar algo que não é um cargo");
        }
    }

    @Override
    public void excluir(int codigo) {
        getCargos().remove(codigo);
        FileManager.serializeObject(getCargos(), Cargo.class);
    }

    @Override
    public Cargo carregar(int codigo) {
        return getCargos().get(codigo);
    }
}
